Linked capture session for automatic image sharing

ABSTRACT

A computing device initiates a linked capture session to enable automatic image sharing by multiple users and devices. The linked capture session is a group of devices that automatically share captured images during the linked capture session. The linked capture session may be initiated based on a location, a group of people, and/or a time duration. The images captured by devices that are connected in the linked capture session are automatically communicated to a remote storage system that allows all users to access the images through devices connected to the linked capture session.

BACKGROUND

Image capture devices are now ubiquitous, and more images of importantand interesting occasions are captured than ever before. Everyone,however, has been at a major event—an anniversary party or a familyreunion—where someone captures a perfect image of a moment, and is theninundated with requests to share the image. Often, no one ever gets thatimage. Similarly, if one person's phone battery dies, that person thenhas to spend the rest of the event trying to collect images from theguests, probably with limited success, rather than enjoying the event.These problems can lead to user frustration with their computingdevices.

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

In accordance with one or more embodiments, a linked capture session isinitiated to enable automatic image sharing by multiple users anddevices. The linked capture session is a group of devices thatautomatically share captured images during the linked capture session.The linked capture session may be initiated based on a location, a groupof people, and/or a time duration and, once initiated, the imagescaptured by devices that are connected in the linked capture session areautomatically communicated to a remote storage system that allows allusers to access the images through devices connected to the linkedcapture session.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description is described with reference to the accompanyingfigures. In the figures, the left-most digit(s) of a reference numberidentifies the figure in which the reference number first appears. Theuse of the same reference numbers in different instances in thedescription and the figures may indicate similar or identical items.Entities represented in the figures may be indicative of one or moreentities and thus reference may be made interchangeably to single orplural forms of the entities in the discussion.

FIG. 1 is a block diagram illustrating an example system implementingthe linked capture session for automatic image sharing in accordancewith one or more embodiments.

FIG. 2 is a flowchart illustrating an example process for implementing alinked capture session for automatic image sharing in accordance withone or more embodiments.

FIG. 3 is a flowchart illustrating another example process forimplementing a linked capture session for automatic image sharing inaccordance with one or more embodiments.

FIG. 4 illustrates an example scenario that describes aspects of thelinked capture session for automatic image sharing in accordance withone or more embodiments.

FIG. 5 illustrates another example scenario that describes aspects ofthe linked capture session for automatic image sharing in accordancewith one or more embodiments.

FIG. 6 illustrates an example system generally that includes an examplecomputing device that is representative of one or more systems and/ordevices that may implement the various techniques described herein.

DETAILED DESCRIPTION

A linked capture session for automatic image sharing is discussedherein. A linked capture session is initiated to connect multiplecomputing devices. Images captured by the devices that are connected inthe linked capture session are automatically communicated to a remotestorage system that stores the images. The linked capture sessionenables the devices connected in the linked capture session to access,edit, download, and so forth images stored by the remote storage system.The linked capture session can be defined by one or more of a timeduration, an event, and a group of users.

Devices may be invited to join the linked capture session based on auser's online presence. Additionally or alternatively, the linkedcapture session may be automatically initiated based on device proximity(to each other or to an event), camera activity, and/or detection ofparticular persons in an image. Once the linked capture session isinitiated, each user has access (through a connected device) to contentcaptured during the linked capture session. The content may also bedisplayed (e.g., as a slideshow) on a television or any other screenthat can be connected to the linked capture session.

The techniques discussed herein allow users to automatically shareimages in a specified and defined manner, in real time as the images arecaptured. This reduces the difficulty of capturing and sharing qualityimages at large or small events, regardless of the number of attendeescapturing images or whether the users know each other. Rather thancompeting with everyone else to capture the same images, and then tryingto find everyone that captured desirable images to ask them to share,the linked capture session allows images and videos to be sharedautomatically and in real time. Merely being at the event (and beingconnected to the linked capture session) provides access to all of theimages and videos from the event. The linked capture session allowsusers to change their behavior from competition (e.g., fighting tocapture images from the best location, getting access to images) tocollaboration (e.g., capturing different interesting and complimentaryimages). Users can even choose not to worry about capturing any imagesthemselves, and just enjoy the event, knowing that others are capturingthe moments and that they will be shared via the linked capture session.

In contrast to applications and programs that help users simplifysharing captured images by treating sharing as an action that happensafter the image has been captured or even after the end of the event atwhich the image was captured, the techniques discussed herein allowlinked capture sessions to be established before an image is captured.This alleviates the situation in which, because the event is over andthe image is already stored on their device, people become engaged withtheir life and busy with work and fail to share the images.

FIG. 1 illustrates an example system 100 implementing the linked capturesession for automatic image sharing in accordance with one or moreembodiments. The system 100 includes a computing device 102, which canbe a variety of different types of devices, such as a dedicated imagecapture device (e.g., a digital camera), a desktop computer, a laptop ornetbook computer, a mobile device (e.g., a tablet or phablet device, acellular or other wireless phone (e.g., a smartphone), a notepadcomputer, a mobile station), and so forth. Additionally oralternatively, the computing device 102 can be a variety of other typesof computing devices, such as a server computer, a wearable device(e.g., eyeglasses, head-mounted display, watch, bracelet, augmentedreality (AR) devices, virtual reality (VR) devices), an entertainmentdevice (e.g., an entertainment appliance, a set-top box communicativelycoupled to a display device, a game console), Internet of Things (IoT)devices (e.g., objects or things with software, firmware, and/orhardware to allow communication with other devices), a television orother display device, an automotive computer, and so forth. Thus, thecomputing device 102 may range from full resource devices withsubstantial memory and processor resources (e.g., personal computers,game consoles) to low-resource devices with limited memory and/orprocessing resources (e.g., traditional set-top boxes, hand-held gameconsoles).

The computing device 102 includes a linked capture module 104(1), whichcan be used to initiate a linked capture session between the computingdevice 102 and an additional device 106 that also includes a linkedcapture module 104(2). In one or more embodiments, the linked capturemodules 104 (shown as 104(1) and 104(2)) implement the samefunctionality, although are implemented in two different devices.Analogous to the discussion of the computing device 102, the additionaldevice 106 can be a variety of different devices, ranging from fullresource devices with substantial memory and processor resources to alow-resource device with limited memory and/or processing resources.Although particular functionality is discussed herein with reference tothe linked capture modules 104, it should be noted that thefunctionality of a linked capture module 104 can be separated intomultiple modules that are included with the computing device 102, theadditional device 106, and/or other locations that are associated withthe example system 100.

The linked capture session is a connected image sharing session thatenables the computing device 102 and the additional device 106 toautomatically share captured images via a remote storage system 108.Access to the remote storage system 108 can be enabled via a network110. The network 110 can be a variety of different networks, such as theInternet, a local area network (LAN), a public telephone network, anintranet, other public and/or proprietary networks, combinationsthereof, and so forth. Although some discussions refer to the computingdevice 102 and the additional device 106, it should be noted that alinked capture session can include any number of devices.

The linked capture session can be defined in a variety of ways. Forexample, the linked capture session may be defined by a preselected timeduration, an event (e.g. a sporting event, a music festival, a weddingreception, and so forth), and/or a group of users (e.g., invitees to thelinked capture session, members of a club, and so forth). Once thelinked capture session is initiated, the computing device 102 and/or theadditional device 106 can be used to capture images, and the linkedcapture module 104(1) and/or 104(2) automatically communicates thecaptured images to the remote storage system 108 via network 110. Theremote storage system 108 then stores the captured images as storedimages 112. The linked capture modules 104 can receive any of the storedimages 112 from the remote storage system 108 and display them (e.g., ona display of the computing device 102 and/or the additional device 106).

A linked capture module 104 can initiate the linked capture session in avariety of ways. For example, the linked capture module 104(1) caninitiate the linked capture session by inviting the additional device106 to join the linked capture session. The linked capture module 104(1)can invite the additional device 106 to join the linked capture sessionby displaying or otherwise providing a bar code (e.g., a quick response(QR) code) associated with the linked capture session, providing a linkto join the linked capture session via a social media service, providinga link (e.g., a uniform resource locator (URL)) that allows theadditional device 106 to join a particular linked capture session via aweb browser, and so forth.

The linked capture modules 104 are also used to end the linked capturesession by unlinking the computing device 102 and the additional device106 from the linked capture session such that captured images are notautomatically communicated to the remote storage system 108. Forexample, the linked capture module 104(1) may unlink the computingdevice 102 and the linked capture module 104(2) may unlink theadditional device 106 from the linked capture session when thepreselected time duration expires, when the event associated with thelinked capture session ends, and so forth. In scenarios where the linkedcapture session is defined by a group of users, the linked capturemodules 104 may end the linked capture session in a number of differentmanners. For example, a linked capture module 104 may have access to thegroup membership list and unlink members whose identity is removed fromthe list.

In one or more embodiments, the remote storage system 108 also includesan authentication module 114 that can be used to further control accessto the linked capture session by verifying that the linked capturesession is comprised only of devices that the initiating device (e.g.,the computing device 102) included in the linked capture sessioninitiation. Any of a variety of public and/or proprietary authenticationalgorithms can be used to perform the authentication. For example, insituations in which the linked capture module 104(1) has provided aninvitation for the additional device 106 to join the linked capturesession via a social media service, the authentication module verifiesthat the additional device 106 is actually the device that has beeninvited. The verification can be performed by ensuring that the socialmedia service is accessed using the appropriate credentials associatedwith the additional device 106 or an entity represented by theadditional device 106 (e.g., a user name and password, a digital key orpassword, biometric information, and so forth).

The authentication module 114 can also provide identification of thedifferent devices joined to the linked capture session, so that theremote storage system 108 can distinguish the captured imagescommunicated from the devices in the linked capture session (i.e., whichimages were communicated from which device). Although particularfunctionality is discussed herein with reference to the authenticationmodule 114, it should be noted that the functionality of theauthentication module 114 can be separated into multiple modules thatare included with the remote storage system 108 and/or with anotherlocation associated with example system 100.

Generally, devices that have been linked to the linked capture sessionand authenticated by the authentication module 114 have access to view,download, edit, and/or delete the stored images 112. Optionally, theauthentication module 114 can be used to control the type of access anyparticular device may exercise. For example, the authentication module114 may be used to restrict the ability to delete images from the storedimages 112 such that images can be deleted only by the device thatcommunicated the image to the remote storage system 108. Additionally oralternatively, the authentication module 114 may allow users to deleteany image in which the user appears (e.g., by using facial recognitiontechniques, social media profile, and so forth).

In embodiments, the remote storage system 108 can be used to provide acommon timestamp for the stored images 112 by determining the timestampsfor captured images communicated from the computing device 102 and/orthe additional device 106 and synchronizing the timestamps to create thecommon timestamp. The synchronization can be achieved by a variety ofprocesses. For example, the remote storage system 108 may use aninternal clock to assign timestamps to the stored images 112 when theyare communicated to the remote storage system 108. In another example,the remote storage system 108 may compare the determined timestamps forimages simultaneously communicated from different devices (e.g.computing device 102 and additional device 106) and use a correctionfactor (e.g. a difference between the timestamps, a difference betweenthe timestamps and a reference timestamp, and so forth) to adjust eitheror both timestamps to create the common timestamp. By way of anotherexample, the remote storage system 108 may communicate date and timeinformation to the computing device 102 and the additional device 106,allowing the linked capture modules 104 (or other modules) to set thedata and time information so that all devices that are part of a linkedcapture session are synchronized to the same date and time.

The common timestamp can be used by the linked capture modules 104and/or the remote storage system 108 to create customized imagepresentations. For example, the linked capture modules 104 can receivemultiple different images of the same subject matter (e.g., fromdifferent angles, with different resolution, and so forth), all havingthe same common timestamp, and create a three-dimensional image of thesubject matter using the different images. The common timestamp can alsobe used to create a chronological slide show from the stored images 112.The linked capture modules 104 can receive sequential images ofparticular subject matter from the remote storage system 108 and createa chronological slide show that depicts the subject matter over time.Each linked capture module 104 can create the three-dimensional image orthe chronological slide show using any of a variety of public and/orproprietary techniques.

Additionally or alternatively, the chronological slide show can bepresented on a display device in real time, as images are communicatedto the remote storage system 108. For example, the remote storage system108 can create the chronological slide show from all the imagescommunicated from the devices joined in the linked capture session andcommunicate the images, as they are received, to one or more displaydevices joined in the linked capture session. In this way, achronological slide show comprised of all the images being captured inthe linked capture session can be presented, in real time, on a commondisplay (e.g., a large screen display in a reception hall) and/or onindividual displays of devices joined to the linked capture session.

The remote storage system 108 can also be used to filter the storedimages 112. The filtering can be performed in a variety of ways. Forexample, the remote storage system 108 can rank the stored images 112images based on a contact list that it receives from a device joined inthe linked capture session (e.g., the computing device 102 and/or theadditional device 106). The remote storage system 108 uses the contactlist to rank the images so that images captured by devices associatedwith the most frequently contacted members of the contact list appearfirst. In another example, the remote storage system 108 is configuredto allow users of devices joined in the linked capture session to voteon particular images (e.g., “likes”, upvotes, downvotes, and so forth)and/or download images. The remote storage system 108 can then filterthe stored images 112 based on a number of downloads, a number ofupvotes or likes received, and so forth. The stored images 112 can thenbe ranked so that the images with the more downloads or upvotes arepresented before images with fewer downloads or upvotes. Optionally, theremote storage system 108 can adjust the number of votes by subtractingdownvotes or other negative votes.

In another example, the remote storage system 108 can determine thenumber of likes and/or upvotes received by images communicated from aparticular photographer. The positive votes (likes and/or upvotes)associated with images communicated to the remote storage system 108from the photographer are used to create a credential for thephotographer (e.g. by counting the positive votes). The credential canbe used as a filtering criterion so that, once a photographer hasestablished a credential (e.g. a threshold number of positive votes, athreshold ratio of positive votes to negative votes, and so forth), theremote storage system 108 can filter images based on the credential. Theremote storage system 108 can then rank the stored images 112 based onthe credential of the photographer so that the images communicated bythe photographer with the best credential (e.g., the most positivevotes, the fewest negative votes, and so forth) are presented first.

Although particular functionality is discussed herein with reference toparticular modules, it should be noted that the functionality ofindividual modules discussed herein can be separated into multiplemodules, and/or at least some functionality of multiple modules can becombined into a single module. Additionally, a particular modulediscussed herein as performing an action includes that particular moduleitself performing the action, or alternatively that particular moduleinvoking or otherwise accessing another component or module thatperforms the action (or performs the action in conjunction with thatparticular module). Thus, a particular module performing an actionincludes that particular module itself performing the action and/oranother module invoked or otherwise accessed by that particular moduleperforming the action.

FIG. 2 is a flowchart illustrating an example process 200 forimplementing a linked capture session for automatic image sharing inaccordance with one or more embodiments. The process 200 is carried outby a device, such as the computing device 102 of FIG. 1, and can beimplemented in software, firmware, hardware, or combinations thereof.Process 200 is shown as a set of acts and is not limited to the ordershown for performing the operations of the various acts. Process 200 isan example process for implementing the linked capture session forautomatic image sharing; additional discussions of implementing thelinked capture session are included herein with reference to differentfigures.

In process 200, a computing device is linked to an additional device atthe beginning of a linked capture session (act 202). The link can beinitiated by the computing device inviting the additional device to jointhe linked capture session. The invitation can be extended to theadditional device by providing a bar code (e.g., a QR code) associatedwith the linked capture session, providing a link to join the linkedcapture session via a social media service, providing a link (e.g., aURL) that allows the additional device to join the linked capturesession via a web browser, and so forth. Optionally, linking thecomputing device and the additional device in the linked capture sessionmay include authentication of one or both devices, as described withreference to FIG. 1.

The computing device then captures an image (act 204). The capturedimage can be a still image, a video, and so forth. The image optionallyincludes audio or annotations (e.g., text, links, and so forth).

The captured image is automatically communicated to a remote storagesystem that is associated with the linked capture session (act 206). Theimage is communicated via a network 110, as described with reference toFIG. 1, and the remote storage system stores the captured image.

The computing device then receives an additional image, captured by theadditional device, from the remote storage system (act 208). Asdescribed with reference to FIG. 1, the remote storage system can beused to provide a common timestamp for images received from differentdevices (e.g., the computing device and/or the additional device of act202). The common timestamp allows the stored images to be used tosynchronize images in the remote storage system so that the images canbe used to create three-dimensional images or chronological slide shows,as described with reference to FIG. 1.

The additional image is then displayed by the computing device (act210). As described with reference to FIG. 1, the displayed images can befiltered before being displayed. The filtering can be based on a numbercriteria, including by ranking the images based on a contact list, anumber of votes received, a number of downloads, a credential of aphotographer, and so forth.

The linked captured session is then ended (act 212). The linked capturesession can be ended by unlinking the computing device and theadditional device from the linked capture session such that capturedimages are not automatically communicated to the remote storage system.

FIG. 3 is a flowchart illustrating an example process 300 forimplementing a linked capture session for automatic image sharing inaccordance with one or more embodiments. Acts of process 300 are carriedout by a service, such as the remote storage system 108 of FIG. 1, andcan be implemented in software, firmware, hardware, or combinationsthereof. Process 300 is shown as a set of acts and is not limited to theorder shown for performing the operations of the various acts. Process300 is an example process for implementing the linked capture sessionfor automatic image sharing; additional discussions of implementing thelinked capture session are included herein with reference to differentfigures.

In process 300, a request to initiate a linked capture session isreceived from a computing device (act 302). The request includes animage of a user that is associated with the computing device and adefinition of the linked capture session. In one or more embodiments,the definition of the linked capture session includes a time duration,an event identifier (e.g., name or globally unique identifier (GUID), ageo-coded boundary, a proximity between devices capable of participatingin the linked capture session, combinations thereof, and so forth.

The linked capture session is initiated by the request and definition.The definition describes the boundaries of the linked capture session.For example, a definition that includes a time duration defines setstart and stop times for the linked capture session. Similarly, a linkedcapture session defined by an event starts and stops with the event. Thestart and stop times of the event may be determined in real time orbased on pre-defined criteria. The duration can thus vary with thelength of the event (e.g., a weather delay or overtime at a sportingevent, a speech that runs over the allotted time at a political rally,and so forth). Where the definition includes a geo-coded boundary or aproximity, the positions of the devices are known (e.g., via a GPSsystem, a cellular-tower location system, and so forth). The linkedcapture session then includes devices within the geo-coded boundary orthat are within a threshold distance from each other and/or a referencepoint (e.g., the location of the linked capture session initiator, astadium, and so forth).

An image is then received from another computing device that is capableof participating in the linked capture session (act 304). The imageincludes both a user associated with the other computing device and theuser associated with the computing device (e.g., the image received fromthe other computing device is a “selfie” that includes the users of bothdevices). The users of the devices may be identified in the images via avariety of public and/or proprietary facial recognition techniques. Insome embodiments, the capability to participate in the linked capturesession is a functionality of the device (e.g., an application orprogram installed on the device). Additionally or alternatively, thecapability is established by preregistration with a service thatprovides the linked capture session (e.g. a cloud-based service, asubscription service, and so forth).

The other computing device is then connected to the linked capturesession (act 306). Connecting the other computing device to the linkedcapture session may be automatic upon receiving the image, or performedby using the image of the user associated with the other computingdevice to search for a contact method that can be used to send aninvitation to the other computing device (e.g., by one or moretechniques described with reference to FIG. 1). Optionally, connectingthe computing device and the other computing device in the linkedcapture session may require authentication of one or both devices, asdescribed with reference to FIG. 1.

Images captured by the computing device and/or the other computingdevice during the linked capture session are automatically received andstored (act 308). As described with reference to FIG. 1, a commontimestamp for the images received from different devices (e.g., thecomputing device and/or the other computing device) can be determined.The common timestamp allows the stored images to be synchronized so thatthe images can be used to create three-dimensional models orchronological slide shows, as described with reference to FIG. 1.

The computing device and the other computing device are allowed accessto the stored images (act 310). Generally, the access includes theability to view, download, edit, and/or delete the stored images.Optionally, the type of access any particular device may exercise may berestricted, as described with respect to FIG. 1. For example, thecapability to delete images may be restricted the device that capturedthe image, or to users that appear in the image (by using facialrecognition techniques, social media profiles, and so forth).

The linked captured session is then ended (act 312). The linked capturesession can be ended by unlinking the computing device and the othercomputing device from the linked capture session such that imagescaptured by the computing device and/or the other computing device arenot automatically received and stored.

FIG. 4 presents an example scenario 400 that illustrates aspects of thelinked capture session for automatic image sharing, including aspectssimilar to the example process 200 of FIG. 2. In example scenario 400, auser 402 initiates the linked capture session by sending an invitationto another user 404. The invitation could be a bar code (e.g., a QRcode) associated with the linked capture session, a link to join thelinked capture session via a social media service, a link (e.g., a URL)that allows the other user to join the linked capture session via a webbrowser, and so forth. The users 402 and 404 then use their computingdevice to capture images (e.g., still images, video, and so forth).Because the users 402 and 404 are connected in the linked capturesession, the captured images are automatically communicated to a remotestorage system 406, as shown in FIG. 4 by arrows 408 and 410,respectively. The images are communicated via a network 412. Users 402and 404 can both then receive and display any images that have beencommunicated to the remote storage system 406, as shown by arrow 414.

FIG. 5 presents additional example scenarios 500A and 500B thatillustrate aspects of the linked capture session for automatic imagesharing, including aspects similar to the example process 300 of FIG. 3.In example scenario 500A, a user 502 initiates a linked capture sessionwith a service that supports linked capture sessions by sending an imageof the user (e.g., a selfie) along with a definition of the linkedcapture session to the service. As described with reference to FIG. 3,the definition of the linked capture session includes at least one of atime duration, an event, a geo-coded boundary, and a proximity betweendevices capable of participating in the linked capture session. Thelinked capture session is initiated by the service upon receiving therequest and definition.

In example scenario 500B, another user 504 wants to join the linkedcapture session with user 502. The user 504 captures an image thatincludes both the user 502 and the user 504 (e.g., the user 504 takes aselfie that includes the user 502). As described with reference to FIG.3, the users 502 and 504 may be identified in the image via a variety ofpublic and/or proprietary facial recognition techniques, and thecapability to participate in the linked capture session may be enabledby a function of the user's device (e.g., an application) or bypreregistration with a service that provides the linked capture session(e.g. a cloud-based service, a subscription service, and so forth). Theuser 504 is then connected to the linked capture session as describedwith reference to FIG. 3 and images captured by the user 504 during thelinked capture session are automatically received and stored in thelinked capture session. The users connected with the linked capturesession (including the user 504) are allowed access to the storedimages.

FIG. 6 illustrates an example system generally at 600 that includes anexample computing device 602 that is representative of one or moresystems and/or devices that may implement the various techniquesdescribed herein. The computing device 602 may be, for example, a serverof a service provider, a device associated with a client (e.g., a clientdevice), an on-chip system, and/or any other suitable computing deviceor computing system.

The example computing device 602 as illustrated includes a processingsystem 604, one or more computer-readable media 606, and one or more I/OInterfaces 608 that are communicatively coupled, one to another.Although not shown, the computing device 602 may further include asystem bus or other data and command transfer system that couples thevarious components, one to another. A system bus can include any one orcombination of different bus structures, such as a memory bus or memorycontroller, a peripheral bus, a universal serial bus, and/or a processoror local bus that utilizes any of a variety of bus architectures. Avariety of other examples are also contemplated, such as control anddata lines.

The processing system 604 is representative of functionality to performone or more operations using hardware. Accordingly, the processingsystem 604 is illustrated as including hardware elements 610 that may beconfigured as processors, functional blocks, and so forth. This mayinclude implementation in hardware as an application specific integratedcircuit or other logic device formed using one or more semiconductors.The hardware elements 610 are not limited by the materials from whichthey are formed or the processing mechanisms employed therein. Forexample, processors may be comprised of semiconductor(s) and/ortransistors (e.g., electronic integrated circuits (ICs)). In such acontext, processor-executable instructions may beelectronically-executable instructions.

The computer-readable media 606 is illustrated as includingmemory/storage 612. The memory/storage 612 represents memory/storagecapacity associated with one or more computer-readable media. Thememory/storage 612 may include volatile media (such as random accessmemory (RAM)) and/or nonvolatile media (such as read only memory (ROM),Resistive RAM (ReRAM), Flash memory, optical disks, magnetic disks, andso forth). The memory/storage 612 may include fixed media (e.g., RAM,ROM, a fixed hard drive, and so on) as well as removable media (e.g.,Flash memory, a removable hard drive, an optical disc, and so forth).The computer-readable media 606 may be configured in a variety of otherways as further described below.

The one or more input/output interface(s) 608 are representative offunctionality to allow a user to enter commands and information tocomputing device 602, and also allow information to be presented to theuser and/or other components or devices using various input/outputdevices. Examples of input devices include a keyboard, a cursor controldevice (e.g., a mouse), a microphone (e.g., for voice inputs), ascanner, touch functionality (e.g., capacitive or other sensors that areconfigured to detect physical touch), a camera (e.g., which may employvisible or non-visible wavelengths such as infrared frequencies todetect movement that does not involve touch as gestures), and so forth.Examples of output devices include a display device (e.g., a monitor orprojector), speakers, a printer, a network card, tactile-responsedevice, and so forth. Thus, the computing device 602 may be configuredin a variety of ways as further described below to support userinteraction.

The computing device 602 includes a linked capture module 614. Thelinked capture module 614 provides various functionality for interactingwith a linked capture session, such as for initiating a linked capturesession or accessing, editing, or deleting images in an existing linkedcapture session. The linked capture module 614 can be, for example, thelinked capture module 104(1) or 104(2) of FIG. 1.

Various techniques may be described herein in the general context ofsoftware, hardware elements, or program modules. Generally, such modulesinclude routines, programs, objects, elements, components, datastructures, and so forth that perform particular tasks or implementparticular abstract data types. The terms “module,” “functionality,” and“component” as used herein generally represent software, firmware,hardware, or a combination thereof. The features of the techniquesdescribed herein are platform-independent, meaning that the techniquesmay be implemented on a variety of computing platforms having a varietyof processors.

An implementation of the described modules and techniques may be storedon or transmitted across some form of computer-readable media. Thecomputer-readable media may include a variety of media that may beaccessed by the computing device 602. By way of example, and notlimitation, computer-readable media may include “computer-readablestorage media” and “computer-readable signal media.”

“Computer-readable storage media” refers to media and/or devices thatenable persistent storage of information and/or storage that istangible, in contrast to mere signal transmission, carrier waves, orsignals per se. Thus, computer-readable storage media refers tonon-signal bearing media. The computer-readable storage media includeshardware such as volatile and non-volatile, removable and non-removablemedia and/or storage devices implemented in a method or technologysuitable for storage of information such as computer readableinstructions, data structures, program modules, logic elements/circuits,or other data. Examples of computer-readable storage media may include,but are not limited to, RAM, ROM, EEPROM, flash memory or other memorytechnology, CD-ROM, digital versatile disks (DVD) or other opticalstorage, hard disks, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices, or other storage device,tangible media, or article of manufacture suitable to store the desiredinformation and which may be accessed by a computer.

“Computer-readable signal media” refers to a signal-bearing medium thatis configured to transmit instructions to the hardware of the computingdevice 602, such as via a network. Signal media typically may embodycomputer readable instructions, data structures, program modules, orother data in a modulated data signal, such as carrier waves, datasignals, or other transport mechanism. Signal media also include anyinformation delivery media. The term “modulated data signal” means asignal that has one or more of its characteristics set or changed insuch a manner as to encode information in the signal. By way of example,and not limitation, communication media include wired media such as awired network or direct-wired connection, and wireless media such asacoustic, RF, infrared, and other wireless media.

As previously described, the hardware elements 610 and computer-readablemedia 606 are representative of instructions, modules, programmabledevice logic and/or fixed device logic implemented in a hardware formthat may be employed in some embodiments to implement at least someaspects of the techniques described herein. Hardware elements mayinclude components of an integrated circuit or on-chip system, anapplication-specific integrated circuit (ASIC), a field-programmablegate array (FPGA), a complex programmable logic device (CPLD), and otherimplementations in silicon or other hardware devices. In this context, ahardware element may operate as a processing device that performsprogram tasks defined by instructions, modules, and/or logic embodied bythe hardware element as well as a hardware device utilized to storeinstructions for execution, e.g., the computer-readable storage mediadescribed previously.

Combinations of the foregoing may also be employed to implement varioustechniques and modules described herein. Accordingly, software,hardware, or program modules and other program modules may beimplemented as one or more instructions and/or logic embodied on someform of computer-readable storage media and/or by one or more hardwareelements 610. The computing device 602 may be configured to implementparticular instructions and/or functions corresponding to the softwareand/or hardware modules. Accordingly, implementation of modules as amodule that is executable by the computing device 602 as software may beachieved at least partially in hardware, e.g., through use ofcomputer-readable storage media and/or hardware elements 610 of theprocessing system. The instructions and/or functions may beexecutable/operable by one or more articles of manufacture (for example,one or more computing devices 602 and/or processing systems 604) toimplement techniques, modules, and examples described herein.

As further illustrated in FIG. 6, the example system 600 enablesubiquitous environments for a seamless user experience when runningapplications on a personal computer (PC), a television device, and/or amobile device. Services and applications run substantially similar inall three environments for a common user experience when transitioningfrom one device to the next while utilizing an application, playing avideo game, watching a video, and so on.

In the example system 600, multiple devices are interconnected through acentral computing device. The central computing device may be local tothe multiple devices or may be located remotely from the multipledevices. In one or more embodiments, the central computing device may bea cloud of one or more server computers that are connected to themultiple devices through a network, the Internet, or other datacommunication link.

In one or more embodiments, this interconnection architecture enablesfunctionality to be delivered across multiple devices to provide acommon and seamless experience to a user of the multiple devices. Eachof the multiple devices may have different physical requirements andcapabilities, and the central computing device uses a platform to enablethe delivery of an experience to the device that is both tailored to thedevice and yet common to all devices. In one or more embodiments, aclass of target devices is created and experiences are tailored to thegeneric class of devices. A class of devices may be defined by physicalfeatures, types of usage, or other common characteristics of thedevices.

In various implementations, the computing device 602 may assume avariety of different configurations, such as for computer 616, mobile618, and television 620 uses. Each of these configurations includesdevices that may have generally different constructs and capabilities,and thus the computing device 602 may be configured according to one ormore of the different device classes. For instance, the computing device602 may be implemented as the computer 616 class of a device thatincludes a personal computer, desktop computer, a multi-screen computer,laptop computer, netbook, and so on.

The computing device 602 may also be implemented as the mobile 618 classof device that includes mobile devices, such as a mobile phone, portablemusic player, portable gaming device, a tablet computer, a multi-screencomputer, and so on. The computing device 602 may also be implemented asthe television 620 class of device that includes devices having orconnected to generally larger screens in casual viewing environments.These devices include televisions, set-top boxes, gaming consoles, andso on.

The techniques described herein may be supported by these variousconfigurations of the computing device 602 and are not limited to thespecific examples of the techniques described herein. This functionalitymay also be implemented all or in part through use of a distributedsystem, such as over a “cloud” 622 via a platform 624 as describedbelow.

The cloud 622 includes and/or is representative of a platform 624 forresources 626. The platform 624 abstracts underlying functionality ofhardware (e.g., servers) and software resources of the cloud 622. Theresources 626 may include applications and/or data that can be utilizedwhile computer processing is executed on servers that are remote fromthe computing device 602. Resources 626 can also include servicesprovided over the Internet and/or through a subscriber network, such asa cellular or Wi-Fi network.

The platform 624 may abstract resources and functions to connect thecomputing device 602 with other computing devices. The platform 624 mayalso serve to abstract scaling of resources to provide a correspondinglevel of scale to encountered demand for the resources 626 that areimplemented via the platform 624. Accordingly, in an interconnecteddevice embodiment, implementation of functionality described herein maybe distributed throughout the system 600. For example, the functionalitymay be implemented in part on the computing device 602 as well as viathe platform 624 that abstracts the functionality of the cloud 622.

In the discussions herein, various different embodiments are described.It is to be appreciated and understood that each embodiment describedherein can be used on its own or in connection with one or more otherembodiments described herein. Further aspects of the techniquesdiscussed herein relate to one or more of the following embodiments.

A method comprising: linking, at the beginning of a linked capturesession, a computing device to an additional device via the linkedcapture session; capturing, by the computing device, an image;automatically communicating the captured image to a remote storagesystem that is associated with the linked capture session; receiving,from the remote storage system, an additional image captured by theadditional device; and displaying the additional image.

Alternatively or in addition to any of the above described methods, anyone or combination of: the linking the computing device to theadditional device comprising inviting the additional device to join thelinked capture session; the inviting the additional device comprisingproviding, by the computing device to the additional device, one or moreof a QR code, and a link to join the linked capture session via a socialmedia service; the remote storage system configured to determine atimestamp for images captured by the computing device and for imagescaptured by the additional device, and synchronize the computing devicetimestamp and the additional device timestamp to create a commontimestamp for captured images in the remote storage system; the methodfurther comprising ending the linked capture session; the ending thelinked capture session comprising unlinking the computing device and theadditional device from the linked capture session such that capturedimages are not automatically communicated to the remote storage system;the remote storage system configured to filter the communicated capturedimages by one or more of ranking images based on a contact list, rankingimages based on a number of votes received, ranking images based on anumber of downloads, and ranking images based on a credential of aphotographer.

A computing device comprising: a processor; and a computer-readablestorage medium having stored thereon multiple instructions that, whenexecuted by the processor, cause the processor to perform actscomprising: initiating, between the computing device and an additionaldevice, a linked capture session that enables access to a remote storagesystem, the linked capture session defined by one or more of a timeduration, an event, and a group of users; capturing an image; andautomatically communicating the captured image to the remote storagesystem.

Alternatively or in addition to any of the above described computingdevices, any one or combination of: the initiating the linked capturesession comprising inviting, by the computing device, the additionaldevice to join the linked capture session; the inviting the additionaldevice comprising providing, by the computing device to the additionaldevice, one or more of a QR code associated with the linked capturesession, and a link to join the linked capture session via a socialmedia service; the remote storage system configured to determinetimestamps for images captured by the computing device and for imagescaptured by the additional device, and synchronize the timestamp for thecomputing device and the timestamp for the additional device to create acommon timestamp for captured images in the remote storage system; theacts further comprising receiving multiple different captured images ofselected subject matter from the remote storage system, and combiningthe multiple different captured images to create a three-dimensionalimage of the selected subject matter; the remote storage systemconfigured to filter the communicated captured images by one or more ofranking images based on a contact list, ranking images based on a numberof votes received, ranking images based on a number of downloads, andranking images based on a credential of a photographer; the acts furthercomprising ending the linked capture session by unlinking the computingdevice and the additional device from the linked capture session suchthat captured images are not automatically communicated to the remotestorage system.

A method implemented in a service that provides access to a linkedcapture session, the method comprising: receiving, from a computingdevice that is capable of participating in the linked capture system, arequest to initiate the linked capture session, the request including animage of a user associated with the computing device and a definition ofthe image capture session; receiving, from another computing device thatis capable of participating in the linked capture session, an image thatincludes both a user associated with the other computing device and theuser associated with the computing device; connecting the othercomputing device to the linked capture session; automatically receivingand storing images captured by the computing device and the othercomputing device during the defined linked capture session; and allowingaccess, by the computing device and the other computing device, to thestored images.

Alternatively or in addition to any of the above described methods, anyone or combination of: the definition of the image capture sessioncomprising at least one of a time duration, an event, a geo-codedboundary, and a proximity between devices capable of participating inthe linked capture session; the image comprising a selfie taken by theuser associated with the other computing device; the method furthercomprising ending the linked capture session, the ending the linkedcapture session comprising unlinking the computing device and the othercomputing device from the linked capture session such that capturedimages are not automatically received and stored by the service; themethod further comprising determining a timestamp for images captured bythe computing device and for images captured by the other computingdevice, and synchronizing the timestamp of the computing device and thetimestamp of the other computing device to create a common timestamp forthe stored images; the method further comprising combining multipledifferent stored images of selected subject matter to create athree-dimensional image of the selected subject matter.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

What is claimed is:
 1. A computing device comprising: a processor; and acomputer-readable storage medium having stored thereon multipleinstructions that, when executed by the processor, cause the processorto perform acts comprising: receiving, from a first computing devicethat is capable of participating in a linked capture session, a requestto initiate the linked capture session, the request including an imageof a user associated with the first computing device and a definition ofthe linked capture session, wherein the definition of the linked capturesession comprises at least one of an event, a geo-coded boundary, or aproximity between the first computing device and a second computingdevice capable of participating in the linked capture session;receiving, from the second computing device, an image that includes botha user associated with the second computing device and the userassociated with the first computing device; based on receiving the imagethat includes both the user associated with the second computing deviceand the user associated with the first computing device, connecting thesecond computing device to the linked capture session; automaticallyreceiving and storing images captured by the first computing device andthe second computing device during the defined linked capture session;and allowing access, by the first computing device and the secondcomputing device, to the stored images.
 2. The computing device of claim1, the connecting the second computing device to the linked capturesession comprising inviting, by the first computing device, the secondcomputing device to join the linked capture session.
 3. The computingdevice of claim 2, the inviting the second computing device comprisingproviding, by the first computing device to the second computing device,one or more of: a QR code associated with the linked capture session;and a link to join the linked capture session via a social mediaservice.
 4. The computing device of claim 1, the acts furthercomprising: determining timestamps for the images captured by the firstcomputing device and for the images captured by the second computingdevice; and synchronizing the timestamp for the first computing deviceand the timestamp for the second computing device to create a commontimestamp for captured images.
 5. The computing device of claim 4, theacts further comprising: receiving multiple different captured images ofselected subject matter; and combining the multiple different capturedimages to create a three-dimensional image of the selected subjectmatter.
 6. The computing device of claim 1, the acts further comprisingfiltering captured images by one or more of: ranking images based on acontact list; ranking images based on a number of votes received;ranking images based on a number of downloads; and ranking images basedon a credential of a photographer.
 7. The computing device of claim 1,the acts further comprising ending the linked capture session byunlinking the first computing device and the second computing devicefrom the linked capture session such that captured images are notautomatically communicated to a remote storage system.
 8. A methodimplemented in a service that provides access to a linked capturesession, the method comprising: receiving, from a computing device thatis capable of participating in the linked capture session, a request toinitiate the linked capture session, the request including an image of auser associated with the computing device and a definition of the linkedcapture session, wherein the definition of the linked capture sessioncomprises at least one of an event, a geo-coded boundary, or a proximitybetween the computing device and another computing device capable ofparticipating in the linked capture session; receiving, from the anothercomputing device that is capable of participating in the linked capturesession, an image that includes both a user associated with the anothercomputing device and the user associated with the computing device;based on receiving the image that includes both the user associated withthe another computing device and the user associated with the computingdevice, connecting the another computing device to the linked capturesession; automatically receiving and storing images captured by thecomputing device and the another computing device during the definedlinked capture session; and allowing access, by the computing device andthe another computing device, to the stored images.
 9. The method ofclaim 8, the image comprising a selfie taken by the user associated withthe another computing device.
 10. The method of claim 8, furthercomprising ending the linked capture session, the ending the linkedcapture session comprising unlinking the computing device and theanother computing device from the linked capture session such thatcaptured images are not automatically received and stored by theservice.
 11. The method of claim 8, further comprising: determining atimestamp for images captured by the computing device and for imagescaptured by the another computing device; and synchronizing thetimestamp of the computing device and the timestamp of the anothercomputing device to create a common timestamp for the stored images. 12.The method of claim 11, further comprising combining multiple differentstored images of selected subject matter to create a three-dimensionalimage of the selected subject matter.